//L'Slider 0.0.4
(function ($) {
    $.fn.lslider=function(opt, param){
        var t=$(this);
        var p=$(this).find('.prev');
        var n=$(this).find('.next');
        
        if(opt!=undefined&&param!=undefined){
            if(opt=='goto'){
                if(param=='next'){
                    options.position++;
                    calcPosition();
                }
                else if(param=='prev'){
                    options.position++;
                    calcPosition();
                }
                else{
                    options.position_old=options.position;
                    options.position=param;
                    calcPosition();
                }
            }
            
            return;
        }
        
        options={
            inpage: 1,
            position_old: 0,
            position: 0,
            speed: 1000,
            width: $(this).find('.slides li').first().width(),
            height: $(this).find('.slides li').height(),
            type: 0,
            count: $(this).find('.slides li').length
        }
        if(!options.count) return;
        
        if(opt!=undefined){
            if(opt.inpage!=undefined) options.inpage=opt.inpage;
            if(opt.speed!=undefined) options.speed=opt.speed;
            if(opt.type!=undefined){
                switch(opt.type){
                    case 'horizontal': options.type=0; break;
                    case 'vertical': options.type=1; break;
                    case 'alpha': options.type=2; break;
                }
            }
        }
        $(this).find('.slides')
        .css({'overflow': 'hidden'})
        .width(options.width*(options.type==0?options.inpage:1))
        .height(options.height*(options.type==1?options.inpage:1));
        $(this).find('.slides ul')
        .css({
            'display': 'block',
            'list-style': 'none',
            'margin': '0px',
            'padding': '0px'
        })
        .width(options.width*(options.type==0?options.count:1))
        .height(options.height*(options.type==1?options.count:1));
        $(this).find('.tabs ul').css({
            'padding': '0',
            'list-style': 'none'
        });
        $(this).find('.tabs li').css({
            'display': 'block',
            'float': 'left'
        });
        
        switch(options.type){
            case 0:
                $(this).find('.slides li').css({
                    'display': 'block',
                    'float': 'left'
                });                
                $(this).find('.slides ul').css({
                    'margin-left': -options.position*options.width+'px',
                    'width': 'px'
                });
                break;
            case 1:
                $(this).find('.slides li').css({
                    'display': 'block',
                    'overflow': 'hidden'
                });
                $(this).find('.slides ul').css({
                    'margin-top': -options.position*options.height+'px'
                });
                break;
            case 2:
                $(this).find('.slides li').css({
                    'display': 'block',
                    'position': 'absolute',
                    'overflow': 'hidden',
                    'display': 'none'
                }).first().css('display', 'block');
        }
        
        p.css('display', options.position==0?'none':'block');
            n.css('display', options.position==(options.count-1)?'none':'block');
        p
        .click(function(){
            options.position_old=options.position;
            options.position--;
            calcPosition();
        });
        
        n
        .click(function(){
            options.position_old=options.position;
            options.position++;
            calcPosition();
        });
        
        $(this).find('.tabs a').click(function(){
            index=$(this).attr('href').substr(1);
            options.position_old=options.position;
            options.position=index;
            calcPosition();
            return false;
        });
        
        calcPosition=function(){
            while(options.position>=options.count){
                options.position-=options.count;
            }
            while(options.position<0){
                options.position+=options.count;
            }
            switch(options.type){
                case 0:
                    t.find('.slides ul').animate({
                        'margin-left': -options.position*options.width+'px'
                    }, options.speed);
                    break;
                case 1:
                    t.find('.slides ul').animate({
                        'margin-top': -options.position*options.height+'px'
                    }, options.speed);
                    break;
                case 2:
                    t.find('.slides li').eq(options.position_old).fadeOut();
                    t.find('.slides li').eq(options.position).fadeIn();
                    break;
            }
            p.css('display', options.position==0?'none':'block');
            n.css('display', options.position==(options.count-1)?'none':'block');
        }
    };
})(jQuery);